The use of documents in an electronic format (electronic documents) has become increasingly popular for a variety of reasons. First, electronic documents provide a convenient format for storing information because electronic documents may be easily shared with others and do not degrade over time. Second, the types of documents that may be stored electronically have grown with the expanding field of application programs. Third, documents stored electronically lend themselves to be stored more cheaply and efficiently in the aggregate than traditional physical storage.
Electronic documents are typically printed by issuing a print command to a printer driver. While the print command may originate from any programming entity, the print command typically originates from an application program responsible for rendering the electronic document. The printer driver receiving the print command acts like a translator between a printer and the programming entity that issued the print command. For example, a printer driver accepts generic commands from an application program, e.g., a text editor, and translates the generic commands into specialized commands understood by the printer to enable to printer to print the electronic document. A portion of the generic commands that a printer driver may accept from the application program includes specification data. Specification data is data that indicates how the electronic document is to be printed by a user.
Different versions of the application program issuing a print command and the printer driver receiving the print command may exist. For example, a manufacturer may periodically make new versions of application programs or printer drivers available. While a specific version of an application program may function as expected with a specific version of a printer driver, other combinations of versions of application programs and printer drivers may introduce an incompatibility between the application program and the printer driver. Specifically, the printer driver may be a newer than the application program, and the version of the printer driver may not be backward compatible with the version of the application program. Additionally, the application program may be newer than the printer driver, and the version of the application program may not be backward compatible with the version of the printer driver.
The incompatibility between the application program and the printer driver may result in the printing of the electronic document in an undesirable fashion. Certain features or capabilities supported by the application program or printer driver may result in the electronic document to be printed improperly due to the incompatibility. For example, the application program may support a feature to print an electronic document with a border or a watermark, but the version of the printer driver being employed may not support a feature supported by the application program, resulting in a printed copy of the electronic document that differs from the electronic document rendered by the application program, e.g., the border or watermark does not appear properly.
Current approaches attempt to address these problems are not satisfactory. A user encountering incompatibility problems may attempt to modify the original electronic document for purposes of working around the incompatibility. However, this solution is far from complete, as modifying the electronic document to work around the incompatibility may not be possible. Even if it is possible to modify the electronic document to work around the incompatibility, the modification of the electronic document both risks damaging the integrity of the original electronic document and results in wasted time and frustration for the user.
Additionally, a user may attempt to obtain a version of the application program or printer driver that does not introduce the incompatibility. However, such a version of the application program or printer driver may not be available or supported. Moreover, obtaining the latest version of a printer driver or application program may require purchase of the new release. Such a purchase requires additional monetary expense and time for installation, which is undesirable. Accordingly, there is an unaddressed need in the art to resolving printer driver incompatibility problems while avoiding the problems associated with the prior approaches.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.